package com.atguigu.gmall.order.service;

import com.atguigu.gmall.model.enums.ProcessStatus;
import com.atguigu.gmall.model.order.OrderDetail;
import com.atguigu.gmall.model.order.OrderInfo;

import java.util.List;
import java.util.Map;

/**
 * @author: 李旭
 * @create: 2021-09-10 16:20
 **/
public interface OrderInfoService {
    boolean hasStock(OrderDetail orderDetail);

    Long saveOrder(OrderInfo orderInfo);

    void closedOrder(Long orderId);

    OrderInfo getOrderInfo(Long orderId);

    void updateOrderStatusPaid(Long orderId, ProcessStatus processStatus);

    // 通用 更新订单状态
    public void updateOrderStatus(Long orderId, ProcessStatus processStatus);
    // 通用 更新订单状态
    public void updateOrderStatus(OrderInfo orderInfo, ProcessStatus processStatus);

    List<OrderInfo> orderSplit(Long orderId, String wareSkuMap);

    //初始化仓库所需要的数据
    public Map initWareOrder(Long orderId);

    //初始化仓库所需要的数据
    public Map initWareOrder(OrderInfo orderInfo);
}
